class Person:
    def __init__(self, name, email=''):
        self.name = name
        self.email = email

    def introduce(self):
        print('我是{}, 电子邮箱是: {}'.format(self.name, self.email))

class Student(Person):
    def __init__(self, name, email, stu_no,class_name,courses):
        super().__init__(name, email)
        self.stu_no = stu_no
        self.class_name = class_name
        self.courses = courses.copy() # 可变对象，使用copy赋值后，将属性和参数分开，避免数据影响

    def introduce(self):
        print('我是来自{}的学生, 学号: {}'.format(self.class_name, self.stu_no))

class Teacher(Person):
    def __init__(self, name, email, teacher_no,dept,course):
        super().__init__(name, email)
        self.teacher_no = teacher_no
        self.dept = dept
        self.course = course   

    def introduce(self):
        print('我是来自{}的老师, 教授{}课程'.format(self.dept, self.course))

zs = Student('张三','zs@163.com', '01', '2417班', ['语文','数学','英语'])
zs.introduce()

ls = Teacher('李四','ls@163.com', '112', '一年级', '语文')
ls.introduce()